
#pragma once

#include "Matrix4x4.h"
#include "vector3.h"
#include <windows.h>

 class Camera
{
private :
	void Initialize();
public:
	enum CameraType { LANDOBJECT, AIRCRAFT };
	CameraType  mCameraType;
	POINT mMouseLastPosition;
	POINT mMouseCurPosition;
	Vector3 mLook;
	Vector3 mEyePosition;
	Vector3 mUp;
	Vector3 mRight;
	float mCamMoveSpeed;
	float mCamRotateSpeed;

	Camera();
	Camera(CameraType cameraType);
	void Strafe(float units);   // left/right
	void Fly(float units);		// up/down
	void Walk(float units);		// forward/backward
	void RotateUp(float units);
	void RotateSide(float units);
	void UpdateUserInput(POINT*);
	void UpdateCameraInput(bool *inKeys, float, bool);
	void UpdateViewMatrix(void);
};